<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Real-time testing</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Real-time_testing"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Real-time_testing rootpage-Real-time_testing skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Real-time testing</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><p><b>Real-time testing</b> is the process of <a href="Software_testing" title="Software testing">testing</a> <a href="Real-time_computing" title="Real-time computing">real-time computer systems</a>.
</p><p>Software testing is performed to detect and help correct <a href="Computer_bug" class="mw-redirect" title="Computer bug">bugs</a> (errors) in computer software. Testing involves ensuring not only that the software is error-free but that it provides the required functionality to the user. Static and conventional methods of testing can detect bugs, but such techniques may not ensure correct results in real time software systems.<br>
Real-time software systems have strict timing constraints and have a deterministic behavior. These systems have to schedule their tasks such that the timing constraints imposed on them are met.
Conventional static way of analysis is not adequate to deal with such timing constraints, hence additional real-time testing is important.<sup id="cite_ref-real_time_testing_&_debugging_IEEE_paper_1-0" class="reference"><a href="#cite_note-real_time_testing_&_debugging_IEEE_paper-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Strategy">Strategy</h2></div>
<p>Test case design for real time testing can be proposed in four steps<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li><i>Task testing</i></li></ul>
<dl><dd>In the very first step, each task is tested individually with conventional static testing. This testing is performed only to discover the errors in logic or syntax of the program. Order of the events doesn't matter as task testing doesn't deal with timing constraints and time properties of events.</dd></dl>
<ul><li><i>Behavioral testing</i></li></ul>
<dl><dd>Using the system models designed with the help of automated testing tools, it is possible to simulate behavior of real time system and impact of concurrent external events on its behavior.</dd></dl>
<ul><li><i>Intertask testing</i></li></ul>
<dl><dd>Once the testing with the individual task is done, then task is supposed to be error free in coding and behavioral area. Time-related constraints are tested with intertask testing. To reveal the errors in communication, asynchronous tasks are tested with variable data rates and different payloads.</dd></dl>
<ul><li><i>System testing</i></li></ul>
<dl><dd>In this testing, software and hardware are integrated and full range of system tests are conducted to discover errors, if any, during software and hardware <a href="Interfacing_(electronics)" class="mw-redirect" title="Interfacing (electronics)">interfacing</a>.</dd></dl>
<div class="mw-heading mw-heading2"><h2 id="Tools_for_real_time_testing">Tools for real time testing</h2></div>
<p>As testing of real time systems is becoming more important, there are some tools designed for such testing.
</p>
<div class="mw-heading mw-heading3"><h3 id="MSC">MSC</h3></div>
<p><i><a href="Message_Sequence_Chart" class="mw-redirect" title="Message Sequence Chart">Message Sequence Charts</a></i> is an internationally accepted standard for capturing requirements.<sup id="cite_ref-MSC_3-0" class="reference"><a href="#cite_note-MSC-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> MSC provides a graphical 2-D language often required for collecting requirements through some interaction scenarios.
</p>
<div class="mw-heading mw-heading3"><h3 id="SDL">SDL</h3></div>
<p><i><a href="Specification_and_Description_Language" title="Specification and Description Language">Specification and Description Language</a></i> is a standard used for design and analysis. SDL<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> supports the specification of complex software systems and has been extensively applied across a broad array of domains from <a href="Telecommunications" title="Telecommunications">telecommunications</a>, <a href="Automation" title="Automation">automation</a>, through to general software development
</p>
<div class="mw-heading mw-heading3"><h3 id="TTCN">TTCN</h3></div>
<p><i>Testing and Test Control Notation</i> is the only internationally standard testing language. TTCN3<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> provides a broader applicability, as compared to earlier versions of TTCN, which were primarily focused on <a href="OSI_protocols" title="OSI protocols">OSI protocols</a> only.
</p><p>These three standards together are used for testing of real time applications. It is necessary that requirements be satisfied with these models and test cases generated must capture the functional and real time information needed to test systems. Also, the changes in the requirements of design and new information about the real time properties of systems should be fed into models so that its impact can be found out.
</p><p>To accurately capture the real time properties of a given test system and to ensure that requirements and models are used to generate realistic and enforceable timing information, it is essential that the language itself (TTCN-3) has a well understood and semantically sound model of time.
</p>
<div class="mw-heading mw-heading3"><h3 id="TTCN-3">TTCN-3</h3></div>
<div class="mw-heading mw-heading4"><h4 id="Background">Background</h4></div>
<p><a href="TTCN-3" title="TTCN-3">TTCN-3</a> is the only currently available, internationally standardized testing language. Prior to TTCN3, its earlier versions were having limited functionality and limited scope over OSI protocol. But, TTCN3 is an advanced version and has broader applicability.<br>
Characteristics of TTCN3 are:
</p>
<ul><li>ability to specify dynamic concurrent testing</li>
<li>operations for message-based and procedure based communication</li>
<li>the ability to specify data and signature templates with powerful matching mechanisms</li>
<li>type and value parameterization</li>
<li>the assignment and handling of test verdicts</li>
<li>test suite parameterization and test case selection mechanisms</li></ul>
<p>The reason for using TTCN3 for real time testing is because of its timers. These timers are defined in function <a href="Test_suite" title="Test suite">test suites</a>. There are no any global kind timers used in TTCN3. These timers can be started, stopped and checked using simple functions like timer.start, timer.stop, and timer.read.
</p><p>Snapshot Semantics is a technique in TTCN3 (also in TTCN2), which deals with the message passed during communication by system to system or implementation under test. When a series of responses are received by system under test, then snapshot is taken and they are evaluated in order of their arrival. So, each time around a set of attributes, a snapshot is taken and only those events are evaluated which are present in snapshot.
</p><p>But this technique is not efficient as some events and their attribute information might get lost while the snapshot is taken. Some events might get recorded on processing queue, but not on snapshot. Such events can never get processed. Also, if the test executer equipment is not fast enough, then it can not communicate properly with the system under test. So, faults might get generated during such test evaluation.
</p>
<div class="mw-heading mw-heading3"><h3 id="Linux_tools">Linux tools</h3></div>
<p>Sources:<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li>rt-tests: <a rel="nofollow" class="external free" href="https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/">https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/</a></li>
<li>cycletest by <a href="SUSE_S.A." title="SUSE S.A.">SUSE</a>: <a rel="nofollow" class="external free" href="https://documentation.suse.com/sle-rt/15-SP1/html/SLE-RT-all/art-slert-hwtest.html">https://documentation.suse.com/sle-rt/15-SP1/html/SLE-RT-all/art-slert-hwtest.html</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Real-time_linux" class="mw-redirect" title="Real-time linux">Real-time Linux</a></li>
<li><a href="Linux_on_embedded_systems" title="Linux on embedded systems">Embedded Linux</a></li>
<li><a href="Real-time_operating_system" title="Real-time operating system">Real-time operating system</a></li>
<li><a href="Safety-critical_system" title="Safety-critical system">Safety-critical systems</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-real_time_testing_&_debugging_IEEE_paper-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-real_time_testing_&_debugging_IEEE_paper_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFTsaiFangBi1990" class="citation book cs1">Tsai, J.J.P.; Fang, K.-Y.; Bi, Y.-D. (1990). "On real-time software testing and debugging". <i>Proceedings., Fourteenth Annual International Computer Software and Applications Conference</i>. pp. <span class="nowrap">512–</span>518. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FCMPSAC.1990.139423">10.1109/CMPSAC.1990.139423</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-8186-2054-6</bdi>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFPressman2005" class="citation book cs1">Pressman, Roger S. (2005). <i>Software engineering : a practitioner's approach</i> (6th ed.). Boston, Mass.: McGraw-Hill. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-07-285318-2</bdi>. <a href="OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/53848343">53848343</a>.</cite></span>
</li>
<li id="cite_note-MSC-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-MSC_3-0">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><a rel="nofollow" class="external text" href="http://www.sdl-forum.org/issre04-witul/papers/EbnerTTCN3.pdf"><i>TTCN-3 Test Case Generation from Message Sequence Charts</i></a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://sdl-forum.org/index.htm">"SDL Forum Society - Home page"</a>. <i>sdl-forum.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2021-03-08</span></span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.ttcn-3.org/">"Home"</a>. <i>TTCN-3</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2021-03-08</span></span>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFDahlke2018" class="citation web cs1">Dahlke, Patrick (2018-02-06). <a rel="nofollow" class="external text" href="https://medium.com/@patdhlk/realtime-linux-e97628b51d5d">"Realtime Linux"</a>. <i>Medium</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2021-03-10</span></span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://elinux.org/Realtime_Testing_Best_Practices">"Realtime Testing Best Practices - eLinux.org"</a>. <i>elinux.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2021-03-10</span></span>.</cite></span>
</li>
</ol></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-18" href="https://en.wikipedia.org/wiki/?title=Real-time_testing&oldid=1301188283">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>